go/types.operand.expr (field)

78 uses

	go/types (current package)
		assignments.go#L87: 			check.updateExprVal(x.expr, val)
		assignments.go#L91: 			check.updateExprType(x.expr, newType, false)
		assignments.go#L234: 		if sel, ok := x.expr.(*ast.SelectorExpr); ok {
		assignments.go#L238: 				check.errorf(&x, UnaddressableFieldAssign, "cannot assign to struct field %s in map", ExprString(x.expr))
		assignments.go#L242: 		check.errorf(&x, UnassignableOperand, "cannot assign to %s (neither addressable nor a map index expression)", x.expr)
		builtins.go#L564: 					check.errorf(a, MismatchedTypes, invalidArg+"mismatched types %s (previous argument) and %s (type of %s)", x.typ, a.typ, a.expr)
		builtins.go#L590: 			check.updateExprType(a.expr, x.typ, true)
		call.go#L41: 		x.expr = ix.orig // if we don't have an index expression, keep the existing expression of x
		call.go#L105: 			args = []*operand{{mode: value, expr: expr, typ: T.sig}}
		call.go#L127: 	sig = check.instantiateSignature(x.Pos(), x.expr, sig, targs, xlist)
		call.go#L184: 		x.expr = call.Fun
		call.go#L194: 		x.expr = call
		call.go#L227: 		x.expr = call
		call.go#L236: 		x.expr = call
		call.go#L253: 		x.expr = call
		call.go#L269: 			x.expr = call
		call.go#L280: 			x.expr = call
		call.go#L323: 	x.expr = call
		call.go#L396: 				x.expr = ix.orig
		call.go#L411: 					resList[i] = &operand{mode: value, expr: e, typ: v.typ}
		call.go#L433: 					x.expr = ix.orig
		call.go#L524: 			at = args[npars].expr // report at first extra argument
		call.go#L646: 			arg.typ = check.instantiateSignature(call.Pos(), arg.expr, asig, targs[j:k], nil) // TODO(gri) provide xlist if possible (partial instantiations)
		call.go#L768: 			x.expr = e
		call.go#L817: 			check.errorf(e.Sel, AmbiguousSelector, "ambiguous selector %s.%s", x.expr, sel)
		call.go#L837: 		check.errorf(e.Sel, MissingFieldOrMethod, "%s.%s undefined (%s)", x.expr, sel, why)
		call.go#L850: 			check.errorf(e.Sel, MissingFieldOrMethod, "%s.%s undefined (type %s has no method %s)", x.expr, sel, x.typ, sel)
		call.go#L970: 	x.expr = e
		call.go#L975: 	x.expr = e
		const.go#L45: 		op := opName(x.expr)
		const.go#L302: 		check.updateExprVal(x.expr, val)
		const.go#L306: 		check.updateExprType(x.expr, newType, false)
		conversions.go#L119: 		check.updateExprType(x.expr, final, true)
		errors.go#L304: 		if x.expr != nil {
		errors.go#L306: 			return posSpan{pos, pos, x.expr.End()}
		expr.go#L199: 		x.expr = e
		expr.go#L200: 		check.overflow(x, opPos(x.expr))
		expr.go#L540: 		check.updateExprType(x.expr, Default(x.typ), true)
		expr.go#L541: 		check.updateExprType(y.expr, Default(y.typ), true)
		expr.go#L568: 		check.errorf(x, code, "invalid case %s in switch on %s (%s)", x.expr, y.expr, cause) // error position always at 1st operand
		expr.go#L570: 		check.errorf(errOp, code, invalidOp+"%s %s %s (%s)", x.expr, op, y.expr, cause)
		expr.go#L684: 			x.expr = e
		expr.go#L685: 			check.overflow(x, opPos(x.expr))
		expr.go#L710: 			if info, found := check.untyped[x.expr]; found {
		expr.go#L712: 				check.untyped[x.expr] = info
		expr.go#L764: 		x.expr = y.expr
		expr.go#L838: 		x.expr = e
		expr.go#L986: 		check.errorf(x.expr, WrongTypeArgCount, "cannot use generic %s %s without instantiation", what, x.expr)
		expr.go#L1035: 		x.expr = e
		expr.go#L1125: 			x.expr = e
		expr.go#L1155: 	x.expr = e
		expr.go#L1160: 	x.expr = e
		expr.go#L1253: 			list[i] = &operand{mode: value, expr: e, typ: v.typ}
		expr.go#L1261: 		x2 := &operand{mode: value, expr: e, typ: Typ[UntypedBool]}
		index.go#L101: 		x.expr = e.orig
		index.go#L175: 				x.expr = e.orig
		infer.go#L134: 				err.addf(arg, "type %s of %s does not match %s (cannot infer %s)", targ, arg.expr, tpar, typeParamsString(tparams))
		infer.go#L147: 				err.addf(arg, "inferred type %s for %s does not match type %s of %s", inferred, tpar, targ, arg.expr)
		infer.go#L149: 				err.addf(arg, "type %s of %s does not match inferred type %s for %s", targ, arg.expr, inferred, tpar)
		infer.go#L152: 			err.addf(arg, "type %s of %s does not match %s", targ, arg.expr, tpar)
		literals.go#L79: 	x.expr = e // make sure that check.overflow below has an error position
		literals.go#L80: 	check.overflow(x, opPos(x.expr))
		operand.go#L61: 	expr ast.Expr
		operand.go#L71: 	if x.expr == nil {
		operand.go#L74: 	return x.expr.Pos()
		operand.go#L135: 	if x.expr != nil {
		operand.go#L136: 		expr = ExprString(x.expr)
		recording.go#L34: 	assert(x.expr != nil && typ != nil)
		recording.go#L39: 		check.rememberUntyped(x.expr, false, x.mode, typ.(*Basic), val)
		recording.go#L41: 		check.recordTypeAndValue(x.expr, x.mode, typ, val)
		stmt.go#L659: 			x.expr = &ast.Ident{NamePos: s.Body.Lbrace, Name: "true"}
		stmt.go#L968: 				y.expr = lhs // we don't have a better rhs expression to use here
		stmt.go#L1009: 				y.expr = lhs // we don't have a better rhs expression to use here
		typexpr.go#L23: 	x.expr = e